import 'package:json_annotation/json_annotation.dart';

import 'kh_broadcast_ext.dart';
import 'kh_chat_room_info_model.dart';
import 'kh_chat_room_model.dart';
import 'kh_chat_room_seat_model.dart';
import 'kh_room_check_model.dart';
part 'kh_chat_room_enter_model.g.dart';

@JsonSerializable()
class KHChatRoomEnterModel {
  /*
 房间类型
 KHChatRoomTemplateAssignOrder          = 1,//1、派单厅
 KHChatRoomTemplateInteract             = 2,//2、娱乐(其他厅)
 KHChatRoomTemplateFriend               = 3,//3、交友厅
 KHChatRoomTemplateFM                   = 4,//4、FM厅
 KHChatRoomTemplateAudioLive            = 5,//5、语音直播厅
 KHChatRoomTemplateC2C                  = 10,//10、个人房间
 KHChatRoomTemplateOpenBlack            = 11,//11、开黑房间
 KHChatRoomTemplateOkamiFly             = 12,//12、大神带飞厅
 */
  int? template;

  /// 埋点用：派对/个人厅进入来源
  String? room_source;

  /// 埋点用：分类
  String? room_cate;

  /// 埋点用：直播厅进入主播id
  String? live_id;
//进厅或退厅唯一标识
  String? roomIdentity;
//进入类型（目前是c2c房间用）
  int? enterType;
//进入的房间号id
  String? enterRoomNo;

  /// 兜底房间号（预览用）
  String? nextEnterRoomNo;
//房间密码
  String? password;
//被跟随人的名字
  String? enterFollowUserName;
//被跟随人的id
  String? enterFollowUserId;
//是否来自语音派单列表页面进入聊天室
  bool? isFromRecevieOrderPage;
//是普通正常进入还是被跟随进入
  bool? isFollowUserEnter;
//是否从开播的编辑房间页过来
  bool? isFromEditRoom;
//是否是回到老房间（看过的房间）
  bool? isShowPermit;
//从全服广播进房间需要的值
  KHBroadcastExt? ext;
//大神带飞用的字段
  String? pushOrderMsgId;

//接口用的字段
  String? enterTimeStr;
//是否需要密码
  bool? isNeedPassword;

  /// 是否处于预览模式
  bool? isPreview;

  /// 分类id，外部传入 全部房间:@"998"
  String? categaryId;
//加载更多厅的参数
  int? rangeType;
//队伍id
  int? teamId;

// 未成年人风控需求新增
//0-未进厅,1-最小化进厅
  int? enterChatRoomType;

// 新用户体验优化需求新增
  bool? isFront;

  // 麦位数据
  List<KHChatRoomSeatModel?>? micList;

  /// 嘉宾麦位信息
  KHChatRoomSeatModel? guestSeatModel;

  /// cp模式新郎新娘麦位信息
  List? roomWeddingMicList;
  // List<KHChatRoomSeatModel?>? roomWeddingMicList;

  /// 预进厅房间信息
  KHChatRoomInfoModel? roomBaseInfoModel;

  /// 预进厅房间信令相关Token
  KHRoomCheckModel? roomCheckBeanModel;

// KHChatRoomEnterModel
  KHChatRoomModel? chatRoomModel;

  KHChatRoomEnterModel();
  factory KHChatRoomEnterModel.fromJson(Map<String, dynamic> json) =>
      _$KHChatRoomEnterModelFromJson(json);
  Map<String, dynamic> toJson() => _$KHChatRoomEnterModelToJson(this);
}
